Elf: a Language for Logic Deenition and Veriied Metaprogramming

نویسنده

  • Frank Pfenning
چکیده

We describe Elf, a metalanguage for proof manipulation environments that are independent of any particular logical system. Elf is intended for meta-programs such as theorem provers, proof transformers, or type inference programs for programming languages with complex type systems. Elf uniies logic deenition (in the style of LF, the Edinburgh Logical Framework) with logic programming (in the style of Prolog). It achieves this uniication by giving types an operational interpretation, much the same way that Prolog gives certain formulas (Horn-clauses) an operational interpretation. Novel features of Elf include: (1) the Elf search process automatically constructs terms that can represent object-logic proofs, and thus a program need not construct them explicitly, (2) the partial correct-ness of meta-programs with respect to a given logic can be expressed and proved in Elf itself, and (3) Elf exploits Elliott's uniication algorithm for a-calculus with dependent types.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Elf: A Language for Logic Definition and Verified Metaprogramming

We describe Elf, a metalanguage for proof manipulation environments that are independent of any particular logical system. Elf is intended for meta-programs such as theorem provers, proof transformers, or type inference programs for programming languages with complex type systems. Elf unifies logic definition (in the style of LF, the Edinburgh Logical Framework) with logic programming (in the s...

متن کامل

Representing Proof Transformations for Program Optimization

In the proofs as programs methodology a program is derived from a formal constructive proof. Because of the close relationship between proof and program structure, transformations can be applied to proofs rather than to programs in order to improve performance. We describe a method for implementing transformations of formal proofs and show that it is applicable to the optimization of extracted ...

متن کامل

Mechanically Verifying the Correctness of an Offline Partial Evaluator

We show that using deductive systems to specify an offline partial evaluator allows one to specify, prototype, and mechanically verify correctness via meta-programming — all within a single framework. For a λ-mix-style partial evaluator, we specify binding-time constraints using a natural-deduction logic, and the associated program specializer using natural (aka “deductive”) semantics. These de...

متن کامل

A Logic Programming Language with Lambda - Abstraction , Function Variables , and Simple Uni cationDale

It has been argued elsewhere that a logic programming language with function variables and-abstractions within terms makes a good meta-programming language, especially when an object-language contains notions of bound variables and scope. The Prolog logic programming language and the related Elf and Isabelle systems provide meta-programs with both function variables and-abstractions by containi...

متن کامل

On ASM-Based Speci cation of Programming Language Semantics and Reusable Correct Compilations

We deene general transformations on ASM speciications of programming language semantics. These transformations preserve the semantics of the programming language and can thus be used for the deenition of correct compilations. Additionally, we deene an extensible language AL for the speciication of dynamic programming language semantics and describe how this allows reuse of veriied transformatio...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1989